package mlz.b_xml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

/*
  dom4j的使用
 */
public class Dom4JDemo01 {
    @Test //获取XML文件中所有的元素名称
    public void test01() throws DocumentException {
        //1.获取xml解析对象
        SAXReader reader = new SAXReader();
        //2.解析XML 获取对应 文档对象 -> document对象
        Document document = reader.read("user.xml");
        //3.获取根标签
        Element rootElement = document.getRootElement();
        System.out.println(rootElement.getName());//users
        //4.获取根标签下所有的标签
        List<Element> elements = rootElement.elements();
        for(Element element : elements){
            System.out.println("根标签下所有的子标签:" + element.getName());
            List<Element> list = element.elements();
            for (Element element1 :  list){
                System.out.println("user标签下所有的子标签:" + element1.getName());
            }
            break;
        }
    }


    @Test //获取具体节点内容 - 文本信息
    public void test02() throws DocumentException {
        //1.创建xml文档解析对象
        SAXReader sr = new SAXReader();
        //2.读取xml获取document对象
        Document document = sr.read("user.xml");
        //3.获取根节点
        Element rootElement = document.getRootElement();
        //4.获取到当前节点中 所有的子节点
        List<Element> elements = rootElement.elements();
        //获取第一个子节点
        Element user = elements.get(0);
        //5.获取所有的信息

        //获取属性
        String id = user.attributeValue("id");
        //获取标签中的内容
        String name = user.elementText("name");
        String age = user.elementText("age");
        String hobby = user.elementText("hobby");
        System.out.println(id + ":" + name + ":" + age + ":" + hobby) ;

    }
}
















